package com.hmkj.quote.config;

import com.hmkj.core.api.ufx.call.TransactionCall;
import com.hmkj.quote.queue.*;
import com.xiaoleilu.hutool.util.ThreadUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * 初始化数据
 */
@Slf4j
@Component
public class Init implements CommandLineRunner {
    @Override
    public void run(String... strings) throws Exception {
        /** 初始化交易服务器连接 */
        TransactionCall.getInstance().initT2();

        ThreadUtil.execute(new MessageQueueThread());               // 短信、邮件、站内信等通知消息队列

        ThreadUtil.execute(new TraderQueueThread());                // 操盘手处理跟单队列线程

        ThreadUtil.execute(new TraderCancelQueueThread());          // 操盘手处理跟单撤单队列线程

        ThreadUtil.execute(new FlowOrderQueueThread());             // 流单操作队列线程

        ThreadUtil.execute(new FlowOrderSimulateQueueThread());     // 模拟订单流单操作队列线程

        ThreadUtil.execute(new PointQueueThread());                 // 积分奖励发放队列

        ThreadUtil.execute(new CoverOrderQueueThread());            // 策略平仓队列

        ThreadUtil.execute(new LimitEntrustQueueThread());          // 限价单行情驱动下单队列
    }
}
